import { createStore } from 'vuex'
// 引入获取歌词的接口
import { reqLyric } from '@/api/requests/musicListDetail'
// 引入登录模块的接口
import { createQRkey, reqQRcode } from '@/api/requests/home'

export default createStore({
  state: {
    playList: [
      {
        al: {
          id: 121495810,
          name: "⅞",
          picUrl: "https://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
          tns: [],
          pic_str: "109951165627982707",
          pic: 109951165627982700,
        },
        name: "TapToPlay",
        id: 1811895987,
        playStatus: true,
      },
    ],
    playListIndex: 0, //默认的下标为0
    // 控制点击底部的歌曲栏，决定跳出歌曲详情页
    detailShow: false, //播放页面的显示控制变量
    lyricList: {},//歌词部分
    currentTime: 0, //定义一个变量来存储歌曲播放的当前进度时间
    duration: 0, //歌曲总时长
    isLogin: false, //判断是否登录
    isFooterPlayerShow: true, //判断是不是要显示底部的那个播放栏
    QRkey: '',
    QRCodeImg: '',
    menuShow: false
  },
  mutations: {
    // 改变播放状态(播放还是暂停)
    updatePlayStatus: function (state, value) {
      state.playStatus = value
    },
    // 改变当前播放的歌单
    updatePlayList(state, value) {
      state.playList = value
    },
    // 改变要播放的歌单的歌曲下标(也就是看播放的是歌单的哪一首)
    updatePlayListIndex(state, value) {
      state.playListIndex = value
    },
    // 决定要不要弹出歌曲播放的那个唱片页面
    updateDetailSHow(state) {
      state.detailShow = !state.detailShow
    },
    // 是否弹出菜单栏
    updateMenuShow(state) {
      state.menuShow = !state.menuShow
    },
    // 组件更新歌词
    updateLyricList(state, value) {
      state.lyricList = value
    },
    // 获取到当前播放歌曲的当前进度时间
    updateCurrentTime(state, value) {
      state.currentTime = value
    },
    // 获取歌曲的总时长
    updateDuration(state, value) {
      state.duration = value
    },
    pushPlayList(state, value) {
      state.playList.push(value)
    },
    GETQRCODE(state, value) {
      state.QRkey = value
    },
    GETQRCODEIMG(state, value) {
      state.QRCodeImg = value
    }

  },
  actions: {
    // 拿歌词
    async getLyric(context, value) {
      let result = await reqLyric(value)
      context.commit('updateLyricList', result.data.lrc.lyric)
    },
    // 拿生成二维码的key
    async getQRcode(context, value) {
      let result = await createQRkey(value)
      context.commit('GETQRCODE', result.data.data.unikey)
    },
    // 根据key拿二维码图片
    async getQRcodeImg(context, value) {
      console.log(value);
      let result = await reqQRcode(value)
      console.log(result, 'base64');
      context.commit('GETQRCODEIMG', result.data.data.qrurl)
    }


  },
  modules: {
  }
})
